Ext.onReady(function() {
	Ext.lib.Ajax.defaultPostHeader += '; charset=utf-8';//处理ie提交中文乱码问题
		//定义一个CheckBox
		var sm = new Ext.grid.CheckboxSelectionModel({
			singleSelect : true//定义单选
		});
		//选中记录是否高亮显示
		sm.handleMouseDown = Ext.emptyFn;	
		// 定义一个ColumnModel，表头中有四列
		var cm = new Ext.grid.ColumnModel([new Ext.grid.RowNumberer(), sm, {
			header : '编号',
			dataIndex : 'id'
		}, {
			header : '名称',
			dataIndex : 'name'
		}, {
			header : '链接',
			dataIndex : 'url',
			width : 150
		}]);
		/* ArrayReader
		 * ds要对应两个部分：proxy和reader。proxy告诉我们从哪里获得数据，reader告诉我们如何解析这个数据。
		 * Ext.data.MemoryProxy，它是专门用来解析js变量的。你可以看到，我们直接把data作为参数传递进去了。
		 */
		var ds = new Ext.data.Store({
			baseParams : {
				trancode : '9004'
			},
			proxy : new Ext.data.HttpProxy({
				url : '../' + WebServiceUrl
			}),
			reader : new Ext.data.JsonReader({
				totalProperty : 'totalProperty',
				root : 'root'
			}, [{
				name : 'id'
			}, {
				name : 'name'
			}, {
				name : 'url'
			}, {
				name : 'pid'
			}])
		});
		/* 
		 注意：Ext.grid.Grid的第一个参数是渲染的id，
		 对应在html里应该有一个 <div id="grid"></div>的东西，这样grid才知道要把自己画到哪里。
		 创建完grid以后，还要用grid.render()方法，让grid开始渲染，这样才能显示出来。
		 */
		cm.defaultSortable = true; // 设置列可排序
		/*
		 * 定义底部分页菜单
		 */
		var bPage = new Ext.PagingToolbar({
				pageSize : App.pageSize,
				store : ds,
				displayInfo : true,
				displayMsg : '显示第 {0} 条到 {1} 条记录，一共 {2} 条',
				emptyMsg : "没有记录"
			});
		
		var grid = new Ext.grid.GridPanel({
			el : 'grid',
			ds : ds,
			cm : cm,
			bbar : bPage ,
			sm : sm,
			loadMask : {msg:'正在加载数据，请稍候。。。'}, 
			title : "菜单管理",
			iconCls:'icon-grid',
			// inline toolbars
			tbar : [{
				text : '添加',
				tooltip : '添加',
				handler : doAdd,
				iconCls : 'add'
			}, '-', {
				text : '修改',
				tooltip : '修改',
				handler : doEdit,
				iconCls : 'option'
			}, '-', {
				text : '删除',
				tooltip : '删除',
				handler : doDel,
				iconCls : 'remove'
			},'-',{
					text : "名称",
					id : "111"
					
				}, {
					xtype : "textfield",
					id : 'keywords',					
					selectOnFocus : true
				},
				{
				text : '查询',
				tooltip : '查询',
				handler : doSearch,
				iconCls : 'search'
			}],
			height : Ext.get("grid").getHeight(),
  			bodyStyle : 'width:100%',
			stripeRows:true
		});
		//双击事件
		grid.on('rowdblclick', function(grid) {
			new App.EditMenu(ds, grid);
		});
		//单击事件
		grid.on('rowclick', function(grid, t) {
			if (sm.isSelected(t))
				sm.deselectRow(t);
			else
				sm.selectRow(t, true);
		});	
		grid.render();
		ds.load({
			params : {
				start : 0,
				limit : App.pageSize
			}
		});			
		/**添加**/
		function doAdd(){
			new App.AddMenu(ds);
		}
		/**编辑**/
		function doEdit() {
					var _record = grid.getSelectionModel().getSelected();
        			if (!_record) {
						Ext.MessageBox.alert('警告', '请选择一条信息，进行修改!');
					} else {						
						//修改操作
						new App.EditMenu(ds, grid);
					}	
				}
		/**删除**/
		function doDel() {
					var rows = grid.getSelectionModel().getSelections();// 返回值为 Record 数组 
					if (rows.length == 0) {
						Ext.MessageBox.alert('警告', '最少选择一条信息，进行删除!');
					} else {
						Ext.MessageBox.confirm('提示框', '您确定要进行该操作？', function(btn) {
							if (btn == 'yes') {
								if (rows) {
									for (var i = 0; i < rows.length; i++) {
										//删除]
										Ext.Ajax.request({
											url : '../' + WebServiceUrl,
											params : {
												trancode : '90044',
												id : rows[i].get("id")
											},
											success : function(result) {
												json = Ext.util.JSON
														.decode(result.responseText);
												if (json.success) {
													Ext.MessageBox.alert('操作成功',
															json.message);
												} else {
													Ext.MessageBox.alert('操作失败',
															json.message);
												}
											}
										});
									}
								}
							}
							
						})
					}
					ds.load({
								params : {
									start : 0,
									limit : App.pageSize
								}
							});
				}				
	 function doSearch(){
	 	  var keywords = Ext.get('keywords').dom.value;
	 	  ds.baseParams = {
           		keywords:keywords,
           		trancode:'1001'
           };
          ds.load({	params : {start : 0,limit : App.pageSize}});	 	
	 }
	 //注册回车查询事件
	 Ext.getCmp('keywords').on('specialkey',doSearch);
})
